//namespace Domotica.Windows.Input
//{
//    using System;
//    using System.Runtime.CompilerServices;
//    using System.Windows;
//    using System.Windows.Input;

//    using Domotica.Gazing.Extenders;

//    public class GazeEventArgs : InputEventArgs
//    {
//        public GazeEventArgs(Domotica.Windows.Input.GazeDevice gaze, int timestamp) : base(gaze, timestamp)
//        {
//            if (gaze == null)
//            {
//                throw new ArgumentNullException("gaze");
//            }
//        }

//        public GazeEventArgs(GazeDevice gaze, int timestamp, Domotica.Gazing.GazeEventArgs e)
//            : base(gaze, timestamp)
//        {
//            if (gaze == null)
//            {
//                throw new ArgumentNullException("gaze");
//            }
//            _Position =  e.Position.ConvertPoint();
//            _LeftEyeState = e.LeftEyeState;
//            _RightEyeState = e.RightEyeState;
//        }

//        public Point GetPosition(IInputElement relativeTo)
//        {
//            return this.GazeDevice.GetPosition(relativeTo);
//        }

//        protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget)
//        {
//            GazeEventHandler handler = (GazeEventHandler) genericHandler;
//            handler(RuntimeHelpers.GetObjectValue(genericTarget), this);
//        }

//        public Domotica.Windows.Input.GazeDevice GazeDevice
//        {
//            get
//            {
//                return (Domotica.Windows.Input.GazeDevice) base.Device;
//            }
//        }

//        private Point _Position;
//        public Point Position
//        {
//            get
//            {
//                return _Position;
//            }
//        }

//        private EyeState _LeftEyeState;
//        public EyeState LeftEyeState
//        {
//            get
//            {
//                return _LeftEyeState;
//            }
//        }

//        private EyeState _RightEyeState;
//        public EyeState RightEyeState
//        {
//            get
//            {
//                return _RightEyeState;
//            }
//        }

//    }
//}

